package com.dao.offre;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;

import com.dao.compteclient.BeanRechercherClient;
import com.hibernate.BeanCompteClient;
import com.hibernate.BeanOffre;
import com.hibernate.HibernateUtil;


import configuration.Config;


public class DAOOffre {

	public BeanRechercherOffre listerOffreDisponible(int dateRecherche) {
		final BeanRechercherOffre lRetourOffre = new BeanRechercherOffre();
		
		try {
			final List<BeanOffre> lListeOffres = new LinkedList<BeanOffre>();
			 Session session = HibernateUtil.currentSession();
			 Query query = session.createQuery("from FROM BeanOffre WHERE dateExpiration < " + dateRecherche + " AND dateDebutDispo > " + dateRecherche);
			 List list = query.list();
			 Iterator it = list.iterator();
			 while(it.hasNext())
			 {
				 BeanOffre bOffre = (BeanOffre)it.next();	
				 final BeanOffre lOffreDispo = new BeanOffre();
				
				 bOffre.getIdOffre();
				 bOffre.getPrixOffre();
				 bOffre.getDateDebutDispo();
				 bOffre.getDateExpiration();
				 bOffre.getEnLigne();
				 bOffre.getOccasionASaisir();
				 bOffre.getImage();
				 bOffre.getIdVille();
				
				lListeOffres.add(lOffreDispo);
			 }
	
			 HibernateUtil.closeSession();
			
			lRetourOffre.setListeOffres(lListeOffres);
		} catch (Exception e) {
			e.printStackTrace();
			lRetourOffre.setErreur("Exception : " + e.getMessage());
		} 
		
		return lRetourOffre;
	}
	
	
	public BeanRechercherOffre offreASaisir() {
		
		final BeanRechercherOffre lRetour = new BeanRechercherOffre();
		
		try {
			 final List<BeanOffre> lListeOffre = new LinkedList<BeanOffre>();
			 
			 Session session = HibernateUtil.currentSession();
			 Query query = session.createQuery("from BeanOffre");
			 List list = query.list();
			 Iterator it = list.iterator();
			 while(it.hasNext())
			 {
				 BeanOffre bOffre = (BeanOffre)it.next();					
				 lListeOffre.add(bOffre);
			 }
	
			 HibernateUtil.closeSession();			
			 lRetour.setListeOffres(lListeOffre);
			
		} catch (HibernateException e) {
			e.printStackTrace();
			lRetour.setErreur("Hibernate Exception ! : " + e.getMessage());
		} 
		catch (Exception e) {
			e.printStackTrace();
			lRetour.setErreur("Exception : " + e.getMessage());
		} 
		
		return lRetour;
	}
		
}
